Methods and a Computing Device for Determining Whether a Mark is Genuine

ABSTRACT

The present disclosure is generally directed to a method and computing device for determining whether a mark is genuine. According to various implementations, a computing device (or logic circuitry thereof) uses unintentionally-produced artifacts within a genuine mark to define an identifiable electronic signature, extracts certain attributes of the signature (such as deviation from the mean value for each band of the signature), and assigns numerical values to the extracted attributes in order to create a hash identifier that is significantly smaller than the electronic signature itself. The hash identifier is then used as an index for a database of electronic signatures (of genuine marks) to enhance the ease and speed with which numerous genuine signatures can be searched (e.g., in a database) and compared with signatures (of candidate marks.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation-in-part of U.S. patentapplication Ser. No. 14/623,925, filed Feb. 17, 2015 (now U.S. Pat. No.9,519,942) the contents of which are incorporated herein by reference.

TECHNICAL FIELD

The present disclosure is related generally to anti-counterfeitingtechnology and, more particularly, to methods and a computing device fordetermining whether a mark is genuine.

BACKGROUND

Counterfeit products are, unfortunately, widely available and often hardto spot. When counterfeiters produce fake goods, they typically copy thelabeling and bar codes in addition to the actual products. At asuperficial level, the labels and bar codes may appear genuine and evenyield valid data when scanned (e.g., decode to the appropriate UniversalProduct Code). While there are many technologies currently available tocounter such copying, most of these solutions involve the insertion ofvarious types of codes, patterns, microfibers, microdots, and otherindicia to help thwart counterfeiting. Such techniques requiremanufacturers to use additional equipment and material and add a layerof complexity to the production process.

DRAWINGS

While the appended claims set forth the features of the presenttechniques with particularity, these techniques, together with theirobjects and advantages, may be best understood from the followingdetailed description taken in conjunction with the accompanying drawingsof which:

FIG. 1 is an example of a system in which various embodiments of thedisclosure may be implemented;

FIG. 2A, FIG. 2B, and FIG. 2C are flow charts of processes carried byone or more computing devices according to an embodiment;

FIG. 3 is another example of a system in which various embodiments ofthe disclosure may be implemented;

FIG. 4A, FIG. 4B, and FIG. 4C are flow charts of processes carried byone or more computing devices according to an embodiment;

FIG. 5 shows the architecture of a computing device according to anembodiment;

FIG. 6 shows an example of a mark according to an embodiment;

FIG. 7 shows an example of a mark according to another embodiment;

FIG. 8 shows an example of how a computing device sorts a set of metricsand selects the location identifiers of a subset of the metricsaccording to an embodiment;

FIG. 9 shows an example of how a computing device forms a hashidentifier blocks from location identifiers corresponding of multiplesubsets of metrics according to an embodiment;

FIG. 10 shows an example of how a computing device compares twohash-identifier blocks and scores the results of the comparison in anembodiment;

FIG. 11 shows an example of how a computing device combines multiplehash-identifier blocks into an overall hash identifier in an embodiment;

FIG. 12 and FIG. 13 illustrate the process that a computing devicecarries out to convert the degree of correlation between the two sets ofautocorrelated values for a given characteristic (or given set ofmetrics for a characteristic) to a match score for that characteristicor set of metrics in an embodiment;

FIG. 14, FIG. 15, and FIG. 16 show examples of power series generated bya computing device in an embodiment;

FIG. 17 shows an example of how a computing device generates anelectronic signature for a mark in an embodiment;

FIG. 18 shows plots of two waveforms illustrating print variability;

FIG. 19 shows the second waveform of FIG. 18 prior to a filteringprocess and after being subjected to the filtering process according toan embodiment;

FIG. 20 shows band average values as superimposed on the reducedvariability waveform of FIG. 19 according to an embodiment;

FIG. 21A shows binary values being assigned to the bands of FIG. 20according to an embodiment;

FIG. 21B shows floating point values being assigned to the bands of FIG.20 according to an embodiment.

FIG. 22 is a flow diagram of a process carried out by a computing deviceaccording to an embodiment;

FIG. 23 shows an example waveform of a set of “high energy” metrics dataaccording to an embodiment;

FIG. 24 shows a Fourier Power series of the “high energy” metrics dataof FIG. 23 according to an embodiment;

FIG. 25 shows an example waveform of a set of “low energy” metrics dataaccording to an embodiment;

FIG. 26 shows a Fourier Power series of the “low energy” metrics data ofFIG. 25 according to an embodiment;

FIG. 27 depicts illustrates an example bit count result (F) for awell-matching candidate hash identifier according to an embodiment; and

FIG. 28 depicts illustrates an example bit count result (F) for a poorlymatching candidate hash identifier according to an embodiment.

DESCRIPTION

The present disclosure is generally directed to methods and a computingdevice for determining whether a mark is genuine. According to variousembodiments, a computing device (or logic circuitry thereof) usesunintentionally-produced artifacts within a genuine mark to define anidentifiable electronic signature (“signature”), and extracts certainfeatures of the signature in order to enhance the ease and speed withwhich numerous genuine signatures can be searched and compared withsignatures of candidate marks.

This disclosure will often refer to a “mark.” As used herein, a “mark”is a visible indicator that is intentionally put on a physical object. Amark may be something that identifies a brand (e.g., a logo), somethingthat bears information, such as a barcode (e.g., a two-dimensional(“2D”) barcode as specified in the International Organization forStandardization (“ISO”) and the International ElectrotechnicalCommission (“IEC”) standard ISO/IEC 16022), an expiration date, ortracking information such as a serial number), or a decoration. A markis visible in some portion of the electromagnetic spectrum, though notnecessarily with the naked eye.

The term “artifact” as used herein is a feature of a mark that wasproduced by the machine or process that created the mark, but not bydesign or intention (i.e., an irregularity). Examples of artifactsinclude: (a) deviation in average color of a subarea (e.g., a cell of a2D barcode) from an average derived from within the mark (which may bean average for neighboring cells of the same nominal color), (b) bias inthe position of a subarea relative to a best-fit grid of neighboringsubareas, (c) areas of a different one of at least two colors from anominal color of the cells, (d) deviation from a nominal shape of acontinuous edge within the mark, and (e) imperfections or othervariations resulting from the mark being printed. In some embodiments,an artifact is not controllably reproducible.

The terms “closely match,” “closely matching,” and “closely matched” asused herein refer the results of a determination made based on acomparison between values (e.g., two hash identifiers) that yields asimilarity between the values that reaches or exceeds a predeterminedthreshold. For example, if the predetermined threshold is 20 percent,then two hash identifers may be said to “closely match,” be “closelymatching,” or are “closely matched” if 20 percent or more of theconstituent parts (e.g., 20 percent or more of the constituent hashidentifier blocks) of one hash identifier are equal in value to 20percent or more of the constituent parts of the other hash identifier.

The term “location identifier” as used herein refers to a numericalvalue that maps to a location in a mark. The mapping relationshipbetween a location identifier and the location within the mark may beone-to-one. An example of a location identifier having a one-to-onemapping relationship with a location in a mark is a raster index number.

The term “logic circuitry” as used herein means a circuit (a type ofelectronic hardware) designed to perform complex functions defined interms of mathematical logic. Examples of logic circuitry include amicroprocessor, a controller, or an application-specific integratedcircuit. When the present disclosure refers to a computing devicecarrying out an action, it is to be understood that this can also meanthat logic circuitry integrated with the computing device is, in fact,carrying out the action.

The term “mobile communication device” as used herein is a communicationdevice that is capable of sending and receiving information over awireless network such as a cellular network or a WiFi network. Examplesof mobile communication devices include cell phones (e.g., smartphones),tablet computers, and portable scanners having wireless communicationfunctionality.

The present disclosure is generally directed to a method and computingdevice for determining whether a mark is genuine. According to anembodiment, the computing device receives a captured image of a genuinemark and generates an electronic signature for the genuine mark. Inorder to generate the electronic signature, the computing device usesthe captured image to: measure a set of characteristics at multiplelocations within the genuine mark, resulting in a set of metrics for thegenuine mark; and forms the electronic signature for the genuine markbased on the set of metrics.

According to an embodiment, the computing device (or logic circuitrythereof) measures a second set of characteristics at multiple locationswithin the genuine mark, resulting in a second set of metrics for thegenuine mark. The computing device then forms the electronic signaturefor the genuine mark based on the first and second set of metrics.

In an embodiment, the computing device generates a hash identifier(“HID”) for the genuine mark by: extracting a waveform from the set ofmetrics, (in which the waveform is based on an ordered pair relationshipbetween the set of metrics and the locations (e.g., expressed as rasterindex numbers) at which the measurements resulting in those metrics wereobtained). The computing device may filter the waveform (such as byapplying a smoothing process, such as a moving average). The computingdevice extracts attributes of the waveform (or the filtered waveform)and forms the HID for the genuine mark from the attributes of thewaveform (or filtered waveform). The computing device then stores theHID in a database in association with the electronic signature of thegenuine mark.

According to an embodiment, the computing device carries out theextracting and applying operations on a second set of metrics (resultingin a second waveform) and forms the HID from attributes of the first andsecond waveforms.

In an embodiment, other electronic signatures and other HIDs, with eachelectronic signature being associated with its own HID.

According to an embodiment, the computing device receives, from arequestor, a captured image of a candidate mark and a request todetermine whether the candidate mark is genuine and generates anelectronic signature for the candidate mark in one of ways describedabove for the genuine mark. The computing device may also form an HID inone of the ways described above for the genuine mark.

In an embodiment, the computing device determines, based on a comparisonof the HID of the candidate mark with the HID of the genuine mark,whether the HID of the candidate mark closely matches the HID of thegenuine mark. If the HID of the candidate mark is determined to closelymatch the HID of the genuine mark, then the computing device retrieves,from a media storage device, the electronic signature of the genuinemark. The computing device then determines, based on a comparison of theelectronic signature of the candidate mark with the retrieved electronicsignature of the genuine mark, whether the candidate mark is genuine. Ifthe candidate mark is determined to be genuine, then the computingdevice transmits a message to the requestor indicating that the mark isdetermined to be genuine.

According to various embodiments, an HID of a candidate mark may closelymatch the HIDs of multiple genuine marks. Comparing the HID of acandidate mark with HIDs of genuine marks is, however, lesscomputationally intensive and uses less memory than comparing actualsignatures. Thus, by using HIDs in an initial pass through a set ofknown signatures of genuine marks, a computing device or logic circuitrycan significantly cut down on the number of actual signatures that needto be compared.

Turning to FIG. 1, an example of a system in which various embodimentsof the disclosure may be implemented is shown. The procedures carriedout within this system are shown in the flow charts of FIG. 2A, FIG. 2B,and FIG. 2C. FIG. 1 is described here in parallel with FIG. 2A, FIG. 2B,and FIG. 2C.

A mark-applying device 100 applies a genuine mark 102 (“mark 102”) to alegitimate physical object 104 (“object 104”) (block 202 of FIG. 2A). Insome embodiments, the object 104 is an article of manufacture, such as apiece of clothing, handbag, or fashion accessory. In other embodiments,the object 104 is a label, such as a barcode label or packaging for someother physical object. The mark 102 may be something that identifies abrand (e.g., a logo), something that bears information (e.g., abarcode), or a decoration. Possible embodiments of the mark-applyingdevice 100 include a printer (e.g., a laser or thermal printer), anetching device, an engraving device, a mold-applying device, a brandingdevice, a stitching device, and a thermal-transfer device. Themark-applying device 100 applies the mark 102 by, for example, printing,etching, engraving, molding, branding, stitching, or thermallytransferring the mark 102 onto the object 104. The mark 102 includes oneor more artifacts. In some embodiments, the mark 102 also includesintentionally-produced anti-counterfeiting features, such as microscopicpatterns.

A first image-capturing device 106 (e.g., a camera, machine-visiondevice, or scanner) captures an image of the mark 102 after the mark 102is applied (block 204). The circumstances under which the firstimage-capturing device 106 captures the image of the mark 102 arecontrolled, such that there is reasonable assurance that the image is,in fact, that of a genuine mark 102. For example, the time intervalbetween the mark-applying device 100 applying the mark 102 and the firstimage-capturing device 106 obtaining the image of the mark 102 may besmall, and the first image-capturing device 106 may be physicallylocated next to the mark-applying device 100 along a packaging line.Thus, when the term “genuine mark” is used, it refers to a mark that wasapplied by a mark-applying device at a legitimate source (i.e., notcopied illegally or surreptitiously).

The first image-capturing device 106 transmits the captured image to afirst computing device 108. Possible embodiments of the first computingdevice 108 include a desktop computer, a rack-mounted server, a laptopcomputer, a tablet computer, and a mobile phone. In some embodiments,the first image-capturing device 106 is integrated with the firstcomputing device 108, in which case the first image-capturing device 106transmits the captured image to logic circuitry of the first computingdevice 108. The first computing device 108 or logic circuitry thereinreceives the captured image and transmits the captured image to a secondcomputing device 110. Possible implementations of the second computingdevice 110 include all of those devices listed for the first computingdevice 108.

The second computing device 110 receives the captured image and uses thecaptured image to measure various characteristics of the mark 102,resulting in a set of metrics that include data regarding artifacts ofthe mark 102 (block 206). As will be described further, the set ofmetrics may be one of several sets of metrics that the second computingdevice 110 generates about the mark 102. The second computing device 110may carry out the measurements in different locations on the mark 102.In doing so, the second computing device 110 can divide the mark 102into multiple subareas (e.g., in accordance with an industry standard).In an embodiment, if the mark 102 is a 2D barcode, the second computingdevice 110 carries out measurements on all of or a subset of the totalnumber of subareas (e.g., all of or a subset of the total number ofcells) of the mark 102. Examples of characteristics of the mark 102 thatthe second computing device 110 may measure include: (a) feature shape,(b) feature aspect ratios, (c) feature locations, (d) feature size, (e)feature contrast, (f) edge linearity, (g) region discontinuities, (h)extraneous marks, (i) printing defects, (j) color (e.g., lightness, hue,or both), (k) pigmentation, and (l) contrast variations. In someembodiments, the second computing device 110 takes measurements on thesame locations from mark to mark for each characteristic, but ondifferent locations for different characteristics. For example, thefirst second computing device 110 might measure the average pigmentationon a first set of locations of a mark, and on that same first set oflocations for subsequent marks, but measure edge linearity on a secondset of locations on the mark and on subsequent marks. The two sets oflocations (for the different characteristics) may be said to be“different” if there is at least one location that is not common to bothsets.

In an embodiment, the results of characteristic measuring by the secondcomputing device 110 include a set of metrics. There may be one or moresets of metrics for each of the measured characteristics. The secondcomputing device 110 analyzes the set of metrics and, based on theanalysis, generates a signature that is based on the set of metrics(block 208). Because the set of metrics includes data regarding anartifact (or multiple artifacts) of the mark 102, the signature will beindirectly based on the artifact. If the mark 102 carries data (as inthe case of a 2D barcode), the second computing device 110 may alsoinclude such data as part of the signature. Put another way, in someembodiments, the signature may be based on both artifacts of the mark102 and on the data carried by the mark 102.

In an embodiment, in order to generate the signature, for each measuredcharacteristic of the mark 102, the second computing device 110 ranksthe metrics associated with the characteristic by magnitude and use onlythose metrics that reach a predetermined threshold as part of thesignature. For example, the second computing device 110 might refrainfrom ranking those metrics that are below the predetermined threshold.In an embodiment, there is a different predetermined threshold for eachcharacteristic being measured. One or more of the predeterminedthresholds may be based on a noise threshold and on the resolution ofthe first image-capturing device 106.

In an embodiment, the second computing device 110 obtains one hundreddata points for each characteristic and collects six groups ofmeasurements: one set of measurements for pigmentation, one set ofmeasurements for deviation from a best-fit grid, one set of measurementsfor extraneous markings or voids, and three separate sets ofmeasurements for edge linearity.

As part of the ranking process, the second computing device 110 maygroup together metrics that are below the predetermined thresholdregardless of their respective locations (i.e., regardless of theirlocations on the mark 102). Also, the second computing device 110 mayorder the metrics (e.g., by magnitude) in each characteristic categoryas part of the ranking process. Similarly, the second computing device110 might simply discount the metrics that are below the predeterminedthreshold. Also, the process of ranking may simply constitute separatingmetrics that are above the threshold from those that are below thethreshold.

In an embodiment, the second computing device 110 orders the measuredcharacteristics according to how sensitive the characteristics are toimage resolution issues. For example, if the first image-capturingdevice 106 does not have the capability to capture an image in highresolution, it might be difficult for the second computing device 110 toidentify non-linearities of edges. However, the second computing device110 may have no problem identifying deviations in pigmentation. Thus,the second computing device 110 might, on this basis, prioritizepigmentation over edge non-linearities. According to an embodiment, thesecond computing device 110 orders the measured characteristics inreverse order of resolution-dependence as follows: subarea pigmentation,subarea position bias, locations of voids or extraneous markings, andedge non-linearities.

According to an embodiment, the second computing device 110 weights themeasured characteristics of the mark 102 based on one or more of theresolution of the first image-capturing device 106 and the resolution ofthe captured image of the mark 102. For example, if the resolution ofthe first image-capturing device 106 is low, then the second computingdevice 110 may give more weight to the average pigmentation of thevarious subareas of the mark 102. If the resolution of firstimage-capturing device 106 is high, then the second computing device 110may give measurements of the edge irregularities of various subareashigher weight than other characteristics.

If the mark 102 includes error-correcting information, such as that setforth by ISO/IEC 16022, then the second computing device 110 may use theerror-correcting information to weight the measured characteristics. Forexample, the second computing device 110 could read the error-correctinginformation, use the error-correcting information to determine whichsubareas of the mark 102 have errors, and under-weight the measuredcharacteristics of such subareas.

According to an embodiment, in generating the signature, the secondcomputing device 110 weights the measurements for one or more of thecharacteristics of the mark 102 based on the mark-applying device 100.For example, assume that the mark-applying device 100 is a thermaltransfer printer. Further assume that it is known that, for those marksapplied by the mark-applying device 100, edge projections parallel tothe substrate material direction of motion are unlikely to yield edgelinearity measurements of a magnitude sufficient to reach the minimumthreshold for the edge linearity characteristic. The second computingdevice 110 may, based on this known idiosyncrasy of the mark-applyingdevice 100, under-weight the edge linearity characteristic measurementsfor the mark 102.

Continuing with FIG. 1, the second computing device 110 uses locationidentifiers corresponding to a subset of the metrics of the signature toderive an HID (block 210). In one embodiment, the second computingdevice 110 uses index numbers corresponding to a subset of thehighest-magnitude metrics of the signature to derive an HID. As will bediscussed in further detail below, the second computing device 110 may,in deriving the HID, use index numbers corresponding to a subset of eachset of metrics as a block within an overall HID. The second computingdevice 110 stores the signature and the HID (e.g., using a databaseprogram) in a media storage device 112 (e.g., a redundant array ofindependent disks) (block 212) such that the HID is associated with thesignature. In some embodiments, the HID can also be used to look up thesignature (e.g., the second computing device 110 uses a database programto set the HID as an index key for the signature). In some embodiments,the media storage device 112 is made up of multiple devices that aregeographically and temporally distributed, as is often the case withcloud storage services. In some embodiments, one or more of thecharacteristic measuring, analysis of the various sets of metrics,generation of the signature, derivation of the HID, and storage of thesignature and the HID are carried out by the first computing device 108.In other embodiments, all of those steps are carried out by the firstcomputing device 108 and the media storage device 112 is directlyaccessed by the first computing device 108. In the latter embodiment,the second computing device 110 is not used. In still other embodiments,the second computing device 110 transmits the signature and HID to aseparate database server (i.e., another computing device), which storesthe signature and HID in the media storage device 112.

Continuing with FIG. 1, an unverified physical object 114 (“unverifiedobject 114”), which may or may not be the legitimate physical object104, needs to be tested to ensure that it is not counterfeit orotherwise illegitimate. Possible embodiments of the unverified object114 are the same as those of the legitimate physical object 104. On theunverified object 114 is a candidate mark 116. Possible embodiments ofthe candidate mark 116 are the same as those of the genuine mark 102. Asecond image-capturing device 118 (e.g., a camera, machine-visiondevice, or scanner) captures an image of the candidate mark 116 (block250 of FIG. 2B) and transmits the image to a third computing device 120.As with the first image-capturing device 106 and the first computingdevice 108, the second image-capturing device 118 may be part of thethird computing device 120, and the transmission of the captured imageof the candidate mark 116 may be internal (i.e., from the secondimage-capturing device 118 to logic circuitry of the third computingdevice 120). The third computing device 120 (or logic circuitry therein)receives the captured image and transmits the captured image to thesecond computing device 110. The second computing device 110 uses thecaptured image to measure various characteristics of the candidate mark116, including the same characteristics that the second computing device110 measured on the genuine mark 102. The result of this measurement isa set of metrics for the characteristic (block 252). Over successivemeasurements, the result may include one or more sets of metrics foreach of the measured characteristics. The second computing device 110then generates a signature that is based on the set (or sets) of metrics(block 254), and does so using the same technique it used to generate asignature for the genuine mark 102. If the candidate mark 116 is, infact, the genuine mark 102 (or generated by the same process as thegenuine mark 102), then the signature that the second computing device110 creates will, like the signature generated from the captured imageof the genuine mark 102, be based on the artifacts of the genuine mark102. If, on the other hand, the candidate mark 116 is not the genuinemark 102 (e.g., is a counterfeit), then the signature generated by thislatest image will be based on whatever other characteristics thecandidate mark 116 exhibits—artifacts of the counterfeiting process, anabsence of artifacts from the mark-applying device 100, etc. The secondcomputing device 110 uses location identifiers corresponding to a subsetof the metrics of the signature of the candidate mark 116 (e.g., indexnumbers of a subset of the highest-magnitude metrics) to derive an HIDfor the candidate mark 116 (block 256) (in the same manner set forthabove with respect to block 210), and compares (e.g., through querying adatabase) the HID of the candidate mark 116 with HIDs of genuine marksstored in the media storage device 112 (block 258). As an outcome of thecomparison, the second computing device 110 either receives noclosely-matching results (e.g., no results that pass the predeterminedthreshold), or receives one or more closely-matching HIDs from the mediastorage device 114 (block 260). If the second computing device 110receives no closely-matching results, then the second computing device110 indicates (e.g., by transmitting a message) to the third computingdevice 120 indicating that the candidate mark 116 cannot be verified(e.g., transmits a message indicating that the candidate mark 116 is notgenuine) (block 262). The third computing device 120 receives themessage and indicates, on a user interface, that the candidate mark 116cannot be verified (or that the candidate mark 116 is counterfeit). Insome embodiments, the third computing device 118 carries out one or moreof the measuring, generating, and deriving steps, and transmits thesignature (or HID, if the third computing device 118 derives the HID) tothe second computing device 110.

If, on the other hand, the second computing device 110 finds one or moreHIDs that closely-match the HID of the candidate mark 116, then thesecond computing device 110 will respond by retrieving, from the mediastorage device 112, the signatures that are associated with theclosely-matching HIDs (block 264). The second computing device 110 thencompares the actual signature that it generated for the candidate mark116 with the retrieved genuine signatures (block 266 of FIG. 2C). Thesecond computing device 110 repeats this process for each signature towhich a closely-matching HID is associated. If the second computingdevice 110 is not able to closely-match the signature of the candidatemark 116 with any of the retrieved signatures (block 268), then thesecond computing device 110 indicates (e.g., by transmitting a message)to the third computing device 120 indicating that the candidate mark 116cannot be verified (block 270). The third computing device 120 receivesthe message and indicates, on a user interface, that the candidate mark116 cannot be verified. If, on the other hand, the second computingdevice 110 is able to closely-match the signature of the candidate mark116 with a retrieved signature, then the second computing device 110indicates (e.g., by transmitting a message) to the third computingdevice 120 that the candidate mark 116 is genuine (block 272).

Turning to FIG. 3 an example of a system that may be used in anotherembodiment is described. Procedures that may be carried out within thissystem are shown in the flow charts of FIG. 4A, FIG. 4B, and FIG. 4C.FIG. 3, FIG. 4A, FIG. 4B, and FIG. 4C are described here in parallel.

Located at a packaging facility 300 are a label printer 302, alabel-applying device 304, a packaging line 306, an image-capturingdevice 308, and a first computing device 310. The label printer 302applies genuine marks, including a genuine mark 312 (“mark 312”), to anumber of labels that are carried on a label web 314 (block 402 of FIG.4A). Possible embodiments of a genuine mark include a one-dimensional(“1D”) barcode and a 2D barcode. The label applying device 304 appliesthe labels (including individually-shown labels 316 and 318 of FIG. 3)to legitimate physical objects (block 404), two of which are shown inFIG. 3 with reference numbers 320 and 322 (“first object 320” and“second object 322”). FIG. 3 shows the physical objects as being boxes(e.g., boxes containing manufactured products), but the objects do nothave to be boxes or containers. Possible embodiments of the legitimatephysical objects include those listed previously for the object 104 ofFIG. 1.

The image-capturing device 308 captures an image of the mark 312 (block406) and transmits the captured image to a first computing device 310.The first computing device 310 receives the captured image and transmitsthe captured image to a second computing device 324 via a communicationnetwork 326 (“network 326”). Possible embodiments of the network 326include a local-area network, a wide-area network, a public network, aprivate network, and the Internet. The network 326 may be wired,wireless or a combination thereof. The second computing device 324receives the captured image and carries out quality measurements on themark 312 using the image (e.g., such as those set forth in ISO 15415)(block 408). For example, the second computing device 324 may determinewhether there is unused error correction and fixed pattern damage in themark 312. The second computing device 324 then uses the captured imageto measure characteristics of the mark 312, resulting in one or moresets of metrics that include data regarding artifacts of the mark 312(block 410). For example, the second computing device 324 may measure(for all or a subset of subareas of the genuine mark 312): (1) theaverage pigmentation of some or all of the subareas of the genuine mark312 (e.g., all or some of the cells), (2) any deviation in the positionof the subareas from a best-fit grid, (3) the prevalence of stray marksor voids, and (4) the linearity of one or more edges of the subarea.Each set of metrics corresponds to a measured characteristic, althoughthere may be multiple sets of metrics for a single characteristic. Forexample, for each subarea being measured—say, one hundred subareas outof one thousand total subareas of the mark 312—there may be a metric foraverage pigmentation, a metric for deviation from best fit, a metric forthe prevalence of stray marks, and three metrics for edge linearity.Thus, the resulting set of metrics would be one hundred metrics forpigmentation, one hundred for deviation for best fit, one hundredmetrics for stray marks or voids, and three hundred metrics (three setsof one hundred metrics each) for edge linearity. In an embodiment, eachset of metrics is in the form of a list, wherein each entry of the listincludes information identifying the position in the mark 312 (e.g., araster-based index number) from which the second computing device 324took the underlying measurement and a data value (e.g., a magnitude)derived from the measurement itself.

The second computing device 324 then analyzes the metrics to identifythose metrics that will be used to generate an electronic signature forthe mark 312 (block 412), and generates the signature based on theanalysis (block 414). The second computing device 324 identifies asubset of the highest-magnitude metrics of the signature (block 416),derives an HID block using location identifiers corresponding to theidentified subset (block 418), creates an HID based on the HID block(block 420 of FIG. 4A), and stores the HID in association with thesignature (block 422) in a media storage device 328 (whose possibleimplementations are the same as those described for the media storagedevice 112 of FIG. 1). In some embodiments, the second computing device324 repeats blocks 416 and 418 for each set of metrics of the signature(e.g., once for the set of measurements for pigmentation, once set ofmeasurements for deviation from a best-fit grid, once for the set ofmeasurements for extraneous marks or voids, and once for each of thethree separate sets of measurements for edge linearity). In someembodiments, the first computing device 310 carries out one or more ofblocks 402 through 420 and transmits the signature or the HID to thesecond computing device 324.

Continuing with FIG. 3, at some point in the chain of distribution fromthe packaging facility 300 to a point of distribution (e.g., a point ofsale), a user 330 (e.g., a salesperson or law enforcement worker)handles an unverified physical object 332 (“unverified object 332”) thathas an unverified label 334 that carries a candidate mark 336. Indiciaon the unverified object 332 or information encoded in the candidatemark 336 might suggest that the unverified object 332 originated from alegitimate source, such as the packaging facility 300 (or the companyfor which the packaging facility 300 is handling the original objects onthe packaging line 306). In this scenario, the user 330 wishes todetermine whether the unverified object 332 is counterfeit or otherwiseillegitimate.

The user 330 launches an application on a third computing device 338which, in FIG. 3, is depicted as a smartphone. The third computingdevice 338, under control of the application (and possibly in responseto additional input from the user 330) captures an image of thecandidate mark 336 (block 450 of FIG. 4B) (e.g., using a camera 514,depicted in FIG. 5). The third computing device 338 decodes the explicitdata in the candidate mark 336 (block 452) (e.g., data in a bar code,which indicates the identity of a product to which the bar code isapplied), and transmits the captured image to the second computingdevice 324 via the network 326. The second computing device 324 thenuses the captured image to measure a characteristic of the candidatemark 336, resulting in one or more sets of metrics (block 454),resulting in one or more sets of metrics for each of the measuredcharacteristics. The second computing device 324 then analyzes themetrics to identify those metrics that will be used to generate anelectronic signature for the mark 336 (block 456), and generates thesignature based on the analysis (block 458). The second computing device324 may repeat blocks 454 and 456 for each characteristic to be measuredfor the mark, and even repeat these blocks multiple times for a singlecharacteristic (yielding a “signature-worthy” set of metrics on eachiteration). The second computing device 324 identifies a subset of thehighest-magnitude metrics of the signature (block 460) and derives anHID block the set of metrics (of the signature) using locationidentifiers associated with the identified subset (block 462). Thesecond computing device 324 may repeat blocks 454 and 456 for each setof metrics of the signature, yielding multiple HID blocks (in essence,one HID block for each set of metrics). In some embodiments, the thirdcomputing device 338 carries out blocks 454 through 462 and transmitsthe signature or HID to the second computing device 324. The secondcomputing device 324 then carries out the procedures described abovewith respect to FIG. 2B and FIG. 2C, which are reproduced in FIG. 4B andFIG. 4C. In other words, the second computing device 324 carries outblocks 464, 466, 468, 470, 472, 474, 476, and 478 of FIG. 4B and FIG. 4Cin the same fashion that the second computing device 110 of FIG. 1carried out blocks 258, 260, 262, 264, 266, 268, 270, and 272 of FIG. 2Band FIG. 2C.

In one implementation, one or more of the computing devices 108, 110,and 120 of FIG. 1 and one or more of the computing devices 310, 324, and338 of FIG. 3 have the general architecture shown in FIG. 5. The devicedepicted in FIG. 5 includes logic circuitry 502, a primary memory 504(e.g., volatile memory, random-access memory), a secondary memory 506(e.g., non-volatile memory), user input devices 508 (e.g., a keyboard,mouse, or touchscreen), a display 510 (e.g., an organic, light-emittingdiode display), and a network interface 512 (which may be wired orwireless). The memories 504 and 506 store instructions and data. Logiccircuitry 502 executes the instructions and uses the data to carry outvarious procedures including, in some embodiments, the methods describedherein (include, for example, those procedures that are said to becarried out by a computing device). Some of the computing devices mayalso include a camera 514 (e.g., the third computing device 338,particularly if it is implemented as a mobile device).

In an embodiment, a genuine mark (such as the genuine mark 312 of FIG.3) is made up of a number of locations referred to herein as “subareas.”The subareas may correspond to “cells” according ISO/IEC 15415 and maybe uniformly-sized. To help illustrate some of the concepts discussedherein, attention is directed to FIG. 6, which illustrates a mark 600having a first subarea 650, a second subarea 652, a third subarea 654,and a fourth subarea 656. A characteristic of the first subarea 650 isthat its average pigmentation deviates significantly (e.g., to a degreethat exceeds a predetermined threshold) from other subareas. Acharacteristic of the second subarea 652 is that its offset from abest-fit grid 658 is significantly higher than that of other subareas. Acharacteristic of the third subarea 654 is that it includessignificantly higher incidence of voids than other subareas. Finally, acharacteristic of the fourth subarea 656 is that it includes an edge 660whose linearity is significantly less than edges of other subareas.

In an embodiment, to carry out the process of analyzing the metricsobtained from measuring characteristics of a mark (such as in block 412of FIG. 4A and block 456 of FIG. 4B), a computing device (such as thesecond computing device 324) performs the following tasks. The computingdevice generates the best-fit grid 658. In doing so, the computingdevice identifies ideal locations for boundaries between the varioussubareas of the mark. The computing device selects subareas whosecharacteristic measurements are to be used for generating the signaturefor the mark. In an embodiment, the computing device carries out thisselection based on which subareas have characteristics whosemeasurements deviate the most (e.g., above a predetermined threshold)from a normal or optimal measurement expected for that subarea. Examplesof the kind of subareas that the computing device would select in thisscenario include:

(1) Subareas whose average color, pigmentation, or intensity are closestto the global average threshold differentiating dark cells from lightcells as defined by a 2D barcode standard—i.e., the “lightest” darkcells and the “darkest” light cells. The first subarea 650 falls withinthis category. In an embodiment, if the computing device identifies agiven subarea as having a deviant average pigmentation density, thecomputing device may need to reassess subareas for which the identifiedsubarea was a nearest neighbor. When the computing device carries outsuch reassessment, the computing device may discount the identifiedsubarea as a reference.

(2) Subareas whose position deviates the most (e.g., above apredetermined threshold) from an idealized location as defined by thebest-fit grid 658. In some embodiments, the computing device determineswhether a given subarea falls into this category by identifying theedges of the subarea, determining the positions of the edges, andcomparing the positions of the edges to their expected positions, whichare defined by the best-fit grid 658. In other embodiments, thecomputing device generates a histogram of the boundary region betweentwo adjacent subareas of opposite polarity (e.g., dark/light orlight/dark), with the sample region overlapping the same percentage ofeach subarea relative to the best-fit grid 658, and evaluates thedeviation of the histogram from a 50/50 bimodal distribution. The secondsubarea 652 falls within this category.

(3) Subareas that contain extraneous markings or voids, either light ordark. In an embodiment, the computing device determines whether asubarea falls within this category by generating a luminance histogramfor the subarea and determining whether the distance between theoutermost dominant modes of the histogram is sufficiently (e.g., above apre-determined threshold) great. The third subarea 654 falls within thiscategory.

(4) Subareas having one or more edges that have one or more of (a) alength that exceeds a pre-determined threshold, (b) continuity for alength that exceeds (or falls below) a predetermined threshold), and (c)a linearity that exceeds (or falls below) a predetermined threshold. Inan embodiment, the computing device determines whether a subarea fallswithin this category by calculating a pixel-wide luminance value overthe length of one subarea, offset from the best-fit grid 658 by thelength of half of a subarea, run perpendicular to the grid line boundingthat edge in the best-fit grid 658. The fourth subarea 656 falls withinthis category.

After the computing device measures the characteristics of the mark(genuine or candidate), the computing device makes the measuredcharacteristics of the mark available as an index-array associated list(associable by subarea (e.g., cell) position in the mark).

Turning to FIG. 7, in another example, assume that the mark beinganalyzed is a 1D linear barcode 700. Features that a computing device(such as the second computing device 324) may use to form an electronicsignature include: variations 702 in the width of or spacing betweenbars; variations 704 in the average color, pigmentation or intensity;voids 706 in black bars (or black spots in white stripes); andirregularities 708 in the shape of the edges of the bars.

Turning to FIG. 8 and FIG. 9, the process that a computing device (suchas the second computing device 324) carries out to identify a subset ofthe highest magnitude metrics of the electronic signature for a mark atblock 416 of FIG. 4A and block 460 of FIG. 4B (and derive an HID fromthe location identifiers associated with the subset) will now bedescribed. For each measured characteristic (and for each set of metricsfor a characteristic in those cases where a characteristic is measuredmultiple times) the computing device takes the set of metrics that makeup part of an electronic signature and sorts the set by value. In FIG.8, for example, a first set 802 of metrics (depicted as a list)represents the pigmentation for various cells of a 2D barcode, with eachcell having an associated index number. The data for each cell isunitless at this point, but when the computing device originally tookthe pigmentation measurement, it did so in terms of gray value. Thefirst set 802 is just one of multiple sets of metrics that make up theelectronic signature for the 2D barcode. The computing device sorts thefirst set 802 by the magnitude of the data value and extracts a subset804 of index numbers corresponding to a subset 806 of thehighest-magnitude data values. The computing device then makes thesubset 804 of index values an HID block for the first set 802 ofmetrics.

In another example, in FIG. 9, a first set 902 of metrics corresponds toa first characteristic of the mark (e.g., the genuine mark 312 or thecandidate mark 336), a second set 904 of metrics corresponds to a secondcharacteristic of the mark, and a third set 906 of metrics (the “nthset” or final set) corresponds to a third characteristic of the mark.There may be any number of sets of metrics, however. Each member of eachset of metrics in this example includes (1) an index value, whichcorrelates with the raster position of the subarea of the mark fromwhich a measurement of the characteristic was obtained, and (2) a datavalue, which is a magnitude that is either the measurement itself or isderived from the measurement (e.g., after some statistical processingand normalization). The computing device sorts each set of metrics bydata value. For each set of metrics, the computing device extracts theindex values corresponding to a highest-magnitude subset of the datavalues. In this example, each highest-magnitude subset is the toptwenty-five data values of a set of metrics. The computing devicederives a first HID block 908 from the index values corresponding to thehighest-magnitude subset of the first set 902 of metrics. The computingdevice similarly derives a second HID block 910 from the index valuescorresponding to the highest-magnitude subset of the second set 904 ofmetrics. The computing device continues this process until it hascarried out this process for each of the sets of metrics (i.e., throughthe nth set 906 of metrics to derive a third or “nth” HID block 912),resulting in a set of HID blocks. The computing device forms the HID byaggregating the HID blocks. In this example, the HID blocks contain theextracted index values themselves.

Turning to FIG. 10, an example of how a computing device (e.g., thesecond computing device 324) compares an HID generated for a candidatemark to an HID of a genuine mark (e.g., as described in conjunction withblocks 464 and 466 in FIG. 4B) according to an embodiment is shown. Thecomputing device attempts to match index values that make up therespective HID blocks of the candidate mark and the genuine mark, withlike sets of index values being matched against one another for an“apples to apples” comparison (e.g., the extracted subset of the indexvalues for pigmentation of the candidate mark is compared to theextracted subset of the index values for pigmentation of the genuinemark). The computing device counts each match towards a match score.Thus, for example, the block 1002 of the genuine mark and the block 1004of the candidate mark have a match score of 21, while the block 1006 ofthe candidate mark and the block 1008 of the genuine mark have a matchscore of 4.

Turning to FIG. 11, an example of how a computing device (e.g., thesecond computing device 324) compares an overall HID of a genuine markwith that of a candidate mark according to an embodiment is described.The computing device takes each individual HID block of an HID value1100 of a genuine signature and compares it to the corresponding blockof an HID value 1102 of a candidate signature and assigns a match score(e.g., as described above with respect to FIG. 10). The computing devicethen combines each of the scores into an overall match score. If theoverall match score meets or exceeds a predetermined threshold score,then the computing device deems the HIDs to be closely matched. Forexample, the computing device may use a predetermined threshold score of120, meaning that if the score is 120 or more, then the computing devicewould deem the two HIDs to be closely matching. This threshold could beas low as zero. In some embodiments the computing device disregards theminimum and simply take the “top <n>” HID scores (e.g., the top 10). Insuch a case, the computing device would consistently be performing atest on the top 10 best HID matches. This addresses the possibility ofhaving an inaccurate HID cutoff and thereby generating a false negativethrough the filtering step (at the expense of unnecessary computationson actual non-genuine candidates). The computing device then retrievesthe signature associated with the genuine HID value 1100. The computingdevice repeats this process until it has compared the candidate HIDvalue 1102 with a number (perhaps all) of the HID values stored in adatabase of genuine mark signatures. The outcome of this process will bea subset of the whole set of genuine mark signatures, each of which thecomputing device can then compare (via a more “brute force” method) tothe signature of the candidate mark.

According to various embodiments, a computing device compares oneelectronic signature (e.g., of a candidate mark) with another electronicsignature (e.g., of a genuine mark) (e.g., at blocks 266 and 472) asfollows. The computing device (e.g., the second computing device 324)array-index matches the raw sets of metrics of the two marks for eachcharacteristic. The computing device also subjects each raw set of thegenuine mark to normalized correlation to a like-order extracted metricset from a candidate mark. The computing device then uses thecorrelation results to arrive at a match/no match decision (genuine vs.counterfeit).

For example, the computing device compares the candidate signature withthe genuine signature by comparing the autocorrelation series of thesorted metrics of the candidate mark with the autocorrelation series ofthe (stored) sorted genuine signature. For clarity, the well-knownstatistical operation:

$r_{xy} = \frac{{n{\sum\; {x_{i}y_{i}}}} - {\sum\; {x_{i}{\sum\; y_{i}}}}}{\sqrt{{n{\sum\; x_{i}^{2}}} - \left( {\sum\; x_{i}} \right)^{2}}\sqrt{{n{\sum\; y_{i}^{2}}} - \left( {\sum\; y_{i}} \right)^{2}}}$

is the common Normalized Correlation Equation, where r is thecorrelation result, n is the length of the metric data list, and x and yare the metrics data sets for the genuine mark and the candidate mark,respectively. When the computing device carries out the autocorrelationfunction, the data sets x and y are the same.

To produce the autocorrelation series according to an embodiment, thecomputing device carries out the operation set forth in the NormalizedCorrelation Equation multiple times, each time offsetting the series xby one additional index position relative to the series y (rememberingthat y is a copy of x). As the offset progresses, the data set “wraps”back to the beginning as the last index in the y data series is exceededdue to the x index offset. According to an embodiment, the computingdevice accomplishes this by doubling the y data and “sliding” the x datafrom offset 0 through offset n to generate the autocorrelation series.

In some embodiments, at block 212 in FIG. 2A and at block 422 in FIG.4A, instead of storing the entire signature in the media storage device,the second computing device instead stores a set of polynomialcoefficients that describe (to a predetermined order and precision) abest-fit curve matching the shape of the autocorrelation results. Thisis feasible because the second computing device carries out the processof generating the signature on sorted metrics data and, as a result, theautocorrelation series for the characteristic data (i.e., the metricsthat help represent the artifacts within the genuine mark) is typicallya simple polynomial curve.

In an embodiment, a computing device (e.g., the second computing device110 or second computing device 324) computes r_(xy), where each termx_(i) is an artifact represented by its magnitude and location, and eachterm y_(i)=x_((i+i)), where j is the offset of the two datasets, for j=0to (n−1). Because the x_(i) are sorted by magnitude, and the magnitudeis the most significant digits of x_(i), there is a very strongcorrelation at or near j=0, falling off rapidly towards j=n/2. Because yis a copy of x, j and n−j are interchangeable, the autocorrelationseries forms a U-shaped curve, an example of which is shown in FIG. 12,which is necessarily symmetric about j=0 and j=n/2. Thus, the computingdevice in this embodiment need only calculate half of the curve,although in FIG. 12 the whole curve from j=0 to j=n is shown forclarity.

In one implementation, a computing device (such as the second computingdevice 110 or second computing device 324) carries out block 266 of FIG.2C or block 472 of FIG. 4C using the actual autocorrelation numbers, andthen repeats the process on the candidate mark using thepolynomial-modeled curve. In practice, it has been found that a6th-order equation using six-byte floating-point values for thecoefficients will tend to match the genuine signature data within a onepercent curve fit error or “recognition fidelity.” The resulting matchscores that the computing device obtains may be within one percent ofone another. This may be true of both the high match score (as would beexpected if the candidate mark was genuine) and of a low match score (aswould be expected if the candidate mark was not genuine).

In an embodiment, a computing device that analyzes metrics of a mark forthe purpose of generating an electronic signature (e.g., as set forth inblock 412 of FIG. 4A, and block 456 of FIG. 4B) bounds and normalizesthe metrics that it uses to generate the signature. For example, thecomputing device may express the polynomial coefficients to a fixedprecision, express the autocorrelation data itself as values between −1and +1, and use, as the sort order list, the array index location withinthe analyzed mark (genuine or candidate). If the mark being analyzed isa 2D data matrix, the array index may be a raster-ordered index of cellposition within the mark, ordered from the conventional origin datum forthe symbology being used. In one common type of 2D data matrix, theorigin is the point where two solid bars bounding the left and bottomsides of the grid meet.

According to an embodiment, a computing device compares (attempts tomatch) the genuine signature with the candidate signature (e.g., as setforth in block 266 of FIG. 2C or block 472 of FIG. 4C) as follows. Thecomputing device reconstitutes the signatures using the storedpolynomial coefficients, autocorrelates the metrics in each list (i.e.,for each characteristic measured) to generate polynomial coefficients,and compares the two sets of polynomial coefficients (compares the twoautocorrelation series). The computing device may carry out thiscomparison in a number of ways. For example, the computing device mayattempt to correlate the autocorrelation series of the candidate markagainst the (reconstituted) autocorrelation curve of the signature ofthe genuine mark. Alternatively, the computing device may construct acurve for each of the autocorrelation series (candidate and genuine) andperforming a curve-fit error on the pair of curves. FIG. 12 and FIG. 13illustrate this process. The degree of correlation between the two setsautocorrelated values for a given characteristic (or given set ofmetrics for a characteristic) becomes a match score for thatcharacteristic or set of metrics. The computing device then determineswhether the candidate mark is genuine or not basic on all of the matchscores for the various characteristics.

In an embodiment, a computing device that analyzes metrics of a mark forthe purpose of generating an electronic signature (e.g., as set forth inblock 412 of FIG. 4A, and block 456 of FIG. 4B) applies a power seriesanalysis to the autocorrelation data for the candidate mark and to theautocorrelation data for the genuine mark. The computing device mayapply such a power series analysis using a discrete Fourier transform(“DFT”):

$X_{k} = {\sum\limits_{n = 0}^{N - 1}\; {x_{n} \cdot ^{{- {2\pi}}\; k\; {n/N}}}}$

where X_(k) is the k^(th) frequency component, N is the length of thelist of metrics, and x is the metrics data set. The computing devicecalculates the power series of the DFT, analyzes each frequencycomponent (represented by a complex number in the DFT series) formagnitude, and discards the phase component. The resulting datadescribes the distribution of the metric data spectral energy, from lowto high frequency, and it becomes the basis for further analysis.Examples of these power series are shown graphically in FIG. 14, FIG.15, and FIG. 16.

In an embodiment, a computing device that analyzes metrics of a mark forthe purpose of generating an electronic signature (e.g., as set forth inblock 412 of FIG. 4A, and block 456 of FIG. 4B) employs twofrequency-domain analytics: Kurtosis and Distribution Bias. In thiscontext, Distribution Bias refers to a measure of energy distributionaround the center band frequency of the total spectrum. To carry outKurtosis, the computing device may use the following equation:

${kurtosis} = \frac{\sum_{n = 1}^{N}\left( {Y_{n} - \overset{\_}{Y}} \right)^{4}}{{N\left( {N - 1} \right)}s^{4}}$

where Y is the mean of the power series magnitude data, s is thestandard deviation of the magnitudes, and N is the number of analyzeddiscrete spectral frequencies.

To calculate the Distribution Bias in an embodiment, the secondcomputing device uses the following equation:

${{Distribution}\mspace{14mu} {Bias}} = \frac{\sum_{n = 0}^{{(\frac{N}{2})} - 1}{x_{n -}{\sum_{n = {N/2}}^{N}x_{n}}}}{\sum_{n - 0}^{N}x_{n}}$

where N is the number if analyzed discrete spectral frequencies.

When using frequency-domain analytics (e.g., using the DFT) in anembodiment, a computing device considers the following criteria: Thesmooth polynomial curve of the signature of a genuine mark (arising fromthe by-magnitude sorting) yields recognizable characteristics in thespectral signature when analyzed in the frequency domain. A candidatemark, when the metrics data are extracted in the same order as thoseextracted from the genuine mark, will present a similar spectral energydistribution if the symbol is genuine. In other words, the genuine sortorder “agrees” with the candidate's metric magnitudes. Disagreement inthe sorted magnitudes, or other superimposed signals (such asphotocopying artifacts), tend show up as high-frequency components thatare otherwise absent in the genuine symbol spectra, thus providing anadditional measure of mark authenticity. This addresses the possibilitythat a counterfeit autocorrelation series might still satisfy theminimum statistical match threshold of the genuine mark. Thedistribution characteristics of the DFT power series of such a signalwill reveal the poor quality of the match via the high frequenciespresent in the small amplitude match errors of the candidate series.Such a condition could be indicative of a photocopy of a genuine mark.In particular, the computing device deems a high Kurtosis and a highDistribution Ratio to be present in the spectra of a genuine mark. Insome embodiments, the computing device uses this power seriesdistribution information in conjunction with the match score as ameasure of confidence in the verification of a candidate mark.

Turning to FIG. 17, in an embodiment, a computing device generates anelectronic signature for a mark (e.g., as set forth in block 208 of FIG.2A, block 254 for FIG. 2B, block 414 of FIG. 4A, and block 458 of FIG.4B) by encoding the signature as a string of bytes, which may berepresented as American Standard Code for Information Interchange(“ASCII”) characters, rather than as numeric magnitude data. Thisalternative format allows the computing device to use the signature datadirectly as an index for looking up the mark in a media storage device.In this embodiment, rather than storing the location and magnitude ofeach signature metric for the genuine mark, the computing device storesthe presence (or absence) of significant signature features and each ofthe evaluated locations within the genuine mark. For example, in thecase of a 2D Data Matrix symbol that does not carry or encode a uniqueidentifier or serial number, the computing device stores the signaturedata of the mark as a string of characters, each encoding the presenceor absence of a feature exceeding the minimum magnitude threshold foreach characteristic in a subarea, but not encoding further data aboutthe magnitude or number of features in any one characteristic. In thisexample, each subarea in the mark 1700 of FIG. 17 has four bits of data,one bit for each of set of metrics, where a ‘1’ indicates that theparticular metric has a significant feature at that subarea. Forexample, 0000 (hexadecimal 0) may mean that none of the four testedcharacteristics are present to a degree greater than the thresholdmagnitude in that particular subarea. A value of 1111 (hexadecimal F)would meaning that all four of the tested characteristics are present toa degree greater than the minimum in that particular subarea.

In the example of the mark 1700, the first six subareas are coded asfollows. (1) A first subarea 1702 has no artifact for average luminance:it is satisfactorily black. It has no grid bias. It does have a largewhite void. It has no edge shape artifact: its edges are straight andeven. The computing device thus codes it as 0010. (2) A second subarea1704 has a void and an edge shape artifact. The computing device thuscodes it as 0011. (3) A third subarea 1706 is noticeably gray ratherthan black, but has no other artifacts. The computing device thus codesit as 1000. (4) A fourth subarea 1708 has no artifacts. The computingdevice thus codes it as 0000. (5) A fifth subarea 1710 has a grid biasbut no other artifacts. The computing device thus codes it as 0100. (6)A sixth module 1712 has no artifacts. The computing device thus codes itas 0000. Thus, the first six modules are coded as binary001000111000000001000000, hexadecimal 238040, decimal 35-128-64, orASCII #

@. Using a 2D Data Matrix code as an example, with a typical symbol sizeof 22×22 subareas, the ASCII string portion containing the uniquesignature data would be 242 characters in length, assuming the data ispacked two modules per character (byte). The computing device stores thesignature strings of genuine marks in a database, flat file, textdocument or any other construct appropriate for storing populations ofdistinct character strings.

According to an embodiment, the process by which a computing device(e.g., the second computing device 324) tests a candidate mark todetermine whether the mark is genuine in an ASCII-implemented embodimentis as follows:

(1) The computing device analyzes the candidate mark and extracts itsASCII string.

(2) The computing device performs a search query via a database programusing the ASCII string.

(3) The computing device (under the control of the database program)subjects signatures stored in a media storage device to a test for anexact match of the complete candidate search string. If the computingdevice does not find an exact string match, the computing device mayattempt to locate an approximate match, either by searching forsub-strings or by a “fuzzy match” search on the whole strings.

(4) Where the search returns a match to one reference string of at leasta first, minimum confidence match threshold, the computing device deemsthe genuine mark and candidate mark to be the same. In other words, thecomputing device identifies the candidate mark to be genuine. If, on theother hand, the search returns no string with a percentage match above asecond, lower threshold, the computing device rejects the candidate markas counterfeit or invalid.

(5) Where the search returns one reference string with a percentagematch between the first and second thresholds, the computing device maydeem the result to be indeterminate. Where the search returns two ormore reference strings with a percentage match above the secondthreshold, the computing device may deem the result to be indeterminate.Alternatively, the computing device may conduct a further analysis tomatch the candidate mark's string with one of the other stored referencestrings.

(6) When the result is indeterminate, the computing device may indicate(e.g., on a user interface or by transmitting a message to the thirdcomputing device 240) indicating that that the result is indeterminate.The computing device may prompt the user to submit another image of thecandidate mark for testing. Instead, or in addition, the computingdevice may employ a retry method for encoding the individual features inthe captured image of the candidate mark. The computing device may applythe retry method to any subarea whose signature data in the candidatemark is close to the magnitude minimum threshold for that metric. If themark being tested uses an error correction mechanism, the retry methodmay be applied to any subarea or part of the candidate mark that theerror correction mechanism indicates as possibly damaged or altered.Instead, or in addition, the computing device may de-emphasize anysignature data with a magnitude that is close to that minimum magnitudethreshold, for example, by searching with its presence bit asserted (setto 1) and then again with the bit un-asserted (set to 0), or bysubstituting a “wild-card” character. Alternatively, the computingdevice may recompute the percentage match query by underweighting orignoring those bits representing features that are close to thethreshold.

Low Variability Scenario

The embodiments described above in conjunction with FIGS. 4A-4C andFIGS. 8-16 are particularly effective with respect to “high variability”print technologies (e.g., thermal transfer or inkjet) where outlierartifacts of sufficiently discernable magnitude are readily available toact as repeatable HID locations. However, other print technologies maynot exhibit the same type of overt variations. This can be seen in FIG.18, which shows plots of two waveforms (signals). A first waveform 1802has been extracted from a set of ordered pairs of metrics and indexlocations from a mark printed using a thermal transfer printing process.The set of metrics (on the y axis) are, in this example, expressed as avariation from the mean value of the whole waveform (the mean valuebeing set as zero on the y axis). The x axis includes index valuessorted from lowest to highest. A second waveform 1804 has been extractedfrom a set of ordered pairs of metrics and index locations from a markprinted using a flexographic printing process. It can be seen that thefirst waveform 1802 exhibits higher variability than the second waveform1804 (note the differences in amplitude and overall variability withinthe respective data series).

Referring to the thermal transfer data (first waveform 1802), themultiple high-amplitude peaks could be used to compose an HID (in themanner described above) for non-serialized lookup (database lookup). Theflexographic data (second waveform 1804) shows a much lessdifferentiable number series with few discernable ‘outlier’ peaks.Because the flexographic data exhibits low variability, in anembodiment, the computing device (one or more of the computing devices108, 110, and 120 of FIG. 1 or one or more of the computing devices 310,324, and 338 of FIG. 3) may construct the HID using other aspects of themetric signature data that do not rely on the presence of highmagnitude, outlier data values. Various techniques for using such otheraspects will now be described.

According to an embodiment, the computing device filters the waveform,resulting in a filtered waveform. Examples of possible filters include asmoothing process such as a moving average, a time-domain convolution, aFourier series operation, a spatial bandpass filter, and a low passfilter. In an example shown in FIG. 19, the computing device hassubjected the second waveform 1804 to a moving average, which has theeffect of smoothing the data series into a slowly varying waveform. FIG.19 shows the second waveform 1804 prior to being filtered (1904 a) andafter being filtered (a moving average, in this case) (1904 b). Tocalculate the moving average in an embodiment, the computing devicetakes two or more data points from the set of metrics, adds themtogether, divides their sum by the total number of data points added,replaces the first data point with the average, and repeating thisprocess with each successive data point until the end of the set ofmetrics is reached.

In some embodiments, the computing device filters the waveform in a waythat allows information “spread.” For example, applying a spatial filterbefore the window average allows the data within each window to includesome of the information contained in the neighboring windows. In otherwords, the computing device incorporates information from adjacentwindow(s) within the averaged data points in a particular window.

The computing device then extracts attributes of the filtered waveform,such as the position of zero crossings, peak-to-peak distances,integration or differentiation the data, etc. Any or all of thesetechniques may be used as the basis for constructing an HID. In anembodiment, the computing device divides the filtered waveform intosections or ‘bands,’ as shown in FIG. 20 (nine bands in this example)and calculates the local average of the waveform in each band. FIG. 20shows the band average value as superimposed on the signature data asrectangles. In some embodiments, the computing device extractsattributes of the unfiltered waveforms (i.e., does not carry out thefiltering process).

The computing device normalizes these band averages and composes abinary representation of the data (illustrated in FIG. 21A). The binarystring represents the local average as being above or below the overallmean of the band averages. This binary string now becomes the HID blockfor this particular metric. The computing device composes the remainderof the HID blocks similarly for each remaining metric.

In an embodiment, when using this technique, the computing deviceevaluates the stored HID of the genuine mark against the HID of incomingcandidates (e.g., block 464 of FIG. 4B) in a manner different from thatdescribed above with respect to the high-variability scenario. Forexample, instead of fuzzy logic searching, the computing device may useBoolean operations for computing the HID match score. In oneimplementation, the computing device applies a bitwise invertedexclusive OR is applied against the original and incoming candidate bitpatterns. As an example, using the original HID block composed FIG. 21A,the computing device could evaluate an incoming candidate as follows:

Genuine (Block 1): 1 1 0 1 0 1 0 1 1 Candidate (Block 1): 1 1 0 0 0 1 10 1 NOT(XOR) Result: 1 1 1 0 1 1 0 0 1

The “agreeing” bits, represented by the Boolean TRUE result (1) are thensummed by the computing device (e.g., to compute a Hamming distance).This sum becomes the HID score for that block. As before, the computingdevice carries out this process for all blocks in all original HIDrecords against the HID of the candidate mark. Once this is complete,the computing device evaluates the resulting culled list of originalelectronic signatures against the full candidate (e.g., cell phonesubmitted) electronic signature as previously described. If any of theelectronic signatures from the culled list yield a result of “genuine”for the candidate electronic signature data, then the computing devicereports the verification result as such. If none of the culled listyields a “genuine” result, then the computing device reports (e.g., tothe user via a user interface—locally or by transmitting a message tothe remote device (e.g., cell phone)) the verification result as“counterfeit.”

According to an embodiment, instead of representing each band of awaveform as a binary value (as described in conjunction with FIGS. 20and 21A), the computing device retains some of the amplitude informationduring filtering. As shown in FIG. 21B, the computing device may, forexample, use the actual band average values to compose the HID. Then,rather than using Hamming distance as the similarity measure (todetermine whether the HIDs closely match), the computing device usescovariance or numerical correlation to assess the match score ofincoming candidate HIDs. By varying the width and number of theaveraging windows, the computing device can raise or lower the HIDresolution as needed, with more and/or narrower windows yielding an HIDof higher discriminative power (but also being larger and requiring morememory to store), and wider and/or fewer windows having lower storageneeds (due to the greater reduction of data) but with proportionallylower discriminative power.

To illustrate the reduction in data (and, consequently search speed andstorage required) by using one or more of the techniques discussed,assume that the raw waveform (e.g., 1802) has 700 data points. Each is afloating point number of 32 bits which is over 22 kB. In theHamming/binary example of FIG. 21A, the computing device would reducethis down to 9 bits. This represents a dimensional reduction from 70032-bit data points to nine 1-bit data points. In the example of FIG.21B, where the computing device keeps the amplitude information (actualband average value), the dimensional reduction would be to 32×9=288bytes. Thus, the dimensional reduction in that example would be from 70032-bit points to nine 32-bit points.

Turning to FIG. 22, a flow diagram of a process carried out by acomputing device according to an embodiment is shown. The initialprocess flow for this embodiment is the same as blocks 402-414 of FIG.4A (for generating an electronic signature for a genuine mark) andblocks 450-456 of FIG. 4B (for generating an electronic signature for acandidate mark), with the difference being in how the hash identifier isgenerated. However, instead of block 416 or block 450, the process movesto block 2202 of FIG. 22, at which the computing device extracts awaveform from the metrics. For example, the computing device analyzesthe metrics as a set of ordered pairs (metric versus identifier (e.g.,index value) of location in the mark where metric was obtained) andanalyzes those ordered as a waveform. At block 2204, the computingdevice filters the waveform. At block 2206, the computing deviceextracts attributes of the filtered waveform. The computing devicerepeats blocks 1802 through 1806 for each set of metrics (e.g., firstset of metrics, second set of metrics, third set of metrics, etc.), eachextracted waveform (e.g., first waveform, second waveform, thirdwaveform, etc.), and each filtered waveform (e.g., first filteredwaveform, second filtered waveform, third filtered waveform, etc.) Atblock 2208, the computing device forms a hash identifier from theextracted attributes (of the one or more filtered waveforms). Theprocess then moves to block 422 (of FIG. 4A) or block 464 (of FIG. 4B).

Creating a Weight

In an embodiment, the computing device employs a procedure for selectingor preferentially weighting metrics extracted from certain regions ofthe mark over metrics from non-preferred regions of the mark. Thisaccounts for the fact that, in the low-variability scenario, someregions of a mark will carry more useable signature features forconstructing a reliable HID than other areas. This weighting may be donein a variety of ways, including time domain signal amplitude analysis,frequency domain energy analysis, and other methods. In short, thecomputing device uses different sets of rules for weighting the metricsdepending on, for example, whether the region being analyzed exhibitshigh energy or not.

In an embodiment, the computing device uses a measure of the totalsignal energy as derived from a Fourier power series of the metrics datato establish a ‘weighting score’ for each available signature featuremetrics data set. The computing device calculates the total signalenergy by summing the individual spectral energies across the powerseries, where the energy of each spectral component is calculated as thesquare root of the sum of the squares of the real and imaginary parts ofthe frequency domain number.

FIG. 23 shows an example waveform of a set of “high energy” metrics data(variance of the metrics from a baseline or mean versus the locationidentifier (e.g., index value). FIG. 24 shows a Fourier Power series ofthe “high energy” metrics data of FIG. 23. The metrics data of FIG. 23would receive a high weighting score and be preferentially used as thesource data for an HID block.

FIG. 25 shows an example waveform of a set of “low energy” metrics data.FIG. 26 shows a Fourier Power series of the “low energy” metrics data ofFIG. 25. The metrics data of FIG. 25 would receive a low weighting scoreand would not be used as the source data for an HID block.

Calculating the Weighting Score:

In an embodiment, to calculate the weighting score, the computing devicesums the amplitudes of each band in the particular power series it isanalyzing. Once the computing device has a weighting score for eachmetrics data set, it then sorts by these scores in descending order andselects the highest scoring (highest signal energy) metrics data setsfor use in construction of the HID for that mark.

Creating a Mask

In an embodiment, the computing device uses the methods described abovewhen operating on UPC linear barcodes. In this case, 52 HID blocks areavailable, there being two per “bar” in the symbol (one metric dataseries extracted from the leading edge of each bar and one from thetrailing edge, excluding the left and right guard bars). The computingdevice can, for example, choose to use the metrics with the top fivehighest ‘signature energies’ to perform the HID block operations.

In an embodiment, when creating the HID key for an original UPC barcodethe computing device stores all 52 signature metrics data sets alongwith the HID derived from it. Assuming an HID block length of 10 bits,the computing device will end up with an HID with a total length of 520bits.

For efficient processing, the computing device may employ a weightingscheme compatible with the bitwise operations used in the HID comparisonmethod described above. In an embodiment, the computing deviceconstructs a mask that has Boolean TRUE values at the bit locationscorresponding to HID blocks of high/preferred weighting, and BooleanFALSE at all other bit locations. At this point, a simple bitwise ANDoperation with the mask is all that is needed to calculate an HIDsimilarity measure between two HIDs using only the blocks with thehighest energy signal (and therefore the best discriminative power).

As a simplified example, consider a case where the computing device hasconstructed HIDs of 8 blocks, each with 10 bits per block, yielding 80bit HIDs. Further, the computing device will be, in this example, usingonly the top 5 highest energy HID blocks for comparing an HID (A) of thesignature of an original (genuine) mark to an HID (B) of a candidatemark. FIGS. 27 and 28 depict the process and illustrate an example bitcount result (F) for both a well-matching candidate HID (FIG. 27) and apoorly matching candidate HID (FIG. 28).

It should be understood that the exemplary embodiments described hereinshould be considered in a descriptive sense only and not for purposes oflimitation. Descriptions of features or aspects within each embodimentshould typically be considered as available for other similar featuresor aspects in other embodiments. It will be understood by those ofordinary skill in the art that various changes in form and details maybe made therein without departing from their spirit and scope of asdefined by the following claims. For example, the steps of the flowcharts of FIG. 2A, FIG. 2B, FIG. 2C, FIG. 4A, FIG. 4B, FIG. 4C, and FIG.22 can be reordered in ways that will be apparent to those of skill inthe art. Furthermore, the steps of these flowcharts as well as themethods described herein may all be carried out on a single computingdevice.

What is claimed is:
 1. On a computing device, a method for determiningwhether a mark is genuine, the method comprising: receiving a capturedimage of a genuine mark measuring, using the captured image, acharacteristic of the genuine mark at a plurality of locations withinthe genuine mark, resulting in a set of metrics for the characteristic,wherein the plurality of locations is associated with a plurality oflocation identifiers; generating, based on the set of metrics, anelectronic signature for the genuine mark; extracting a waveform fromthe set of metrics, wherein the waveform is based on an ordered pairrelationship between the set of metrics and the plurality of locations;dividing the waveform into a plurality of bands; for each band of theplurality of bands, extracting an attribute of the band; assigning anumerical value based on the attribute, resulting in a set of numericalvalues; forming a hash identifier for the genuine mark from the set ofnumerical values; storing the hash identifier in a database inassociation with the electronic signature of the genuine mark, whereinthe database includes a plurality of electronic signatures of genuinemarks and a plurality of hash identifiers, each electronic signaturebeing associated with its own hash identifier, and is maintained on oneor more media storage devices; receiving a request to determine whethera candidate mark is genuine; and comparing a hash identifier of thecandidate mark with one or more of the plurality of hash identifiers inthe database in order to locate at least one possibly-matchingelectronic signature of a genuine mark.
 2. The method of claim 1,further comprising filtering the waveform, wherein dividing the waveformcomprises dividing the filtered waveform into the plurality of bands. 3.The method of claim 2, wherein filtering the waveform comprisessmoothing the waveform, and dividing the waveform comprises dividing thesmoothed waveform into the plurality of bands.
 4. The method of claim 3,wherein smoothing the waveform comprises applying, to the set ofmetrics, a moving average over the plurality of locations
 5. The methodof claim 2, wherein filtering the waveform comprises applying, to thewaveform, a time domain convolution with a low-pass filter
 6. The methodof claim 2, wherein filtering the waveform comprises applying, to thewaveform, a Fourier series operation.
 7. The method of claim 2, whereinfiltering the waveform comprises applying, to the waveform, a spatialbandpass filter.
 8. The method of claim 1, wherein the numeral value isa binary value and comparing a hash identifier of the candidate markwith one or more of the plurality of hash identifiers in the databasecomprises calculating a Hamming distance between the hash identifier ofthe candidate mark and the one or more of the plurality of hashidentifiers in the database.
 9. The method of claim 1, furthercomprising: determining, based on the comparison of the hash identifierof the candidate mark with a hash identifier with one or more of theplurality of hash identifiers in the database, whether the hashidentifier of the candidate mark closely matches one or more of theplurality of hash identifiers in the database; if the hash identifier ofthe candidate mark is determined to closely match one or more of theplurality of hash identifiers in the database, then retrieving, from amedia storage device, the electronic signature associated with theclosely-matching hash identifier of the database, wherein the retrievedelectronic signature contains data regarding an artifact of the genuinemark; and determining, based on a comparison of the electronic signatureof the candidate mark with the retrieved electronic signature of thegenuine mark, whether the candidate mark is genuine; if the candidatemark is determined to be genuine, then indicating that the candidatemark is genuine.
 10. The method of claim 1, wherein assigning anumerical value comprises assigning the numerical value based on whetherthe mean value of the metrics within the band exceeds the mean value ofthe metrics of the waveform,
 11. The method of claim 1, whereinassigning a numerical value comprises assigning the mean value of themetrics within the band.
 12. The method of claim 1, wherein theplurality of location identifiers comprises a plurality of index values.13. The method of claim 1, further comprising: measuring, using thecaptured image, a second characteristic of the genuine mark at theplurality of locations, resulting in a second set of metrics, whereingenerating the electronic signature comprises generating the electronicsignature based on the first and second set of metrics; extracting asecond waveform from the second set of metrics, wherein the waveform isbased on an ordered pair relationship between the second set of metricsand the plurality of locations; dividing the second waveform into aplurality of bands; and to each band of the plurality of bands of thesecond waveform, assigning numerical value based on an attribute of thewaveform within the band, resulting in a second set of numerical values,wherein forming the hash identifier for the genuine mark comprisesforming the hash identifier from the first and second set of numericalvalues.
 14. The method of claim 1, wherein measuring the characteristicof the candidate mark at a plurality of locations within the candidatemark using the captured image comprises measuring an averagepigmentation of a plurality of subareas of the candidate mark, resultingin a set of metrics for the average pigmentation.
 15. The method ofclaim 1, wherein measuring the characteristic of the candidate markusing the captured image comprises measuring a deviation in a positionof a subarea of the candidate mark from a best-fit grid at a pluralityof locations of the candidate mark, resulting in a set of metrics forthe deviation from the best-fit grid.
 16. The method of claim 1, whereinmeasuring the characteristic of the candidate mark using the capturedimage comprises measuring linearities of a plurality of subareas of thecandidate mark, resulting in a set of metrics for linearities.
 17. Themethod of claim 1, wherein measuring the characteristic of the candidatemark at a plurality of locations within the candidate mark comprisestaking measurements of average gray values of each of a plurality ofsubareas of the candidate mark.
 18. The method of claim 1, whereinmeasuring the characteristic of the candidate mark at a plurality oflocations within the candidate mark comprises taking measurements ofnon-linearities in each of a plurality of subareas of the candidatemark.
 19. On a computing device, a method for determining whether a markis genuine, the method comprising: receiving a captured image of acandidate mark; measuring, using the captured image, a firstcharacteristic of the candidate mark at a plurality of locations withinthe candidate mark, resulting in a first set of metrics for thecandidate mark; measuring, using the captured image, a secondcharacteristic of the candidate mark at the plurality of locations,resulting in a second set of metrics for the candidate mark, wherein theplurality of locations is associated with a plurality of locationidentifiers, generating, based on the first set of metrics and thesecond set of metrics, an electronic signature for the candidate mark,wherein a first waveform represents an ordered pair relationship betweenthe first set of metrics and the plurality of locations and a secondwaveform represents an ordered pair relationship between the second setof metrics and the plurality of locations; filtering the second waveformand the second waveform; dividing the first filtered waveform into afirst plurality of bands; to each band of the first plurality of bands,assigning a numerical value based on an attribute of the first filteredwaveform within the band, resulting in a second set of numerical values;dividing the second waveform into a second plurality of bands; to eachband of the second plurality of bands, assigning a numerical value basedon an attribute of the second filtered waveform within the band,resulting in a second set of numerical values; forming a hash identifierfor the candidate mark using the first set of numerical values and thesecond set of numerical values; determining, based on a comparison ofthe hash identifier of the candidate mark with a hash identifier of agenuine mark, whether the hash identifier of the candidate mark closelymatches the hash identifier of the genuine mark; if the hash identifierof the candidate mark is determined to closely match the hash identifierof the genuine mark, then retrieving, from a media storage device, anelectronic signature of the genuine mark, wherein the electronicsignature of the genuine mark contains data regarding an artifact of thegenuine mark; and determining, based on a comparison of the electronicsignature of the candidate mark with the retrieved electronic signatureof the genuine mark, whether the candidate mark is genuine; if thecandidate mark is determined to be genuine, then indicating that thecandidate mark is genuine.
 20. On a computing device, a method fordetermining whether a mark is genuine, the method comprising: receivinga captured image of a genuine mark; generating an electronic signaturefor the genuine mark by carrying out steps comprising: measuring, usingthe captured image of the genuine mark, a first set of characteristicsof the genuine mark at a plurality of locations within the genuine mark,resulting in a first set of metrics for the genuine mark; measuring,using the captured image of the genuine mark, a second set ofcharacteristics of the genuine mark at a plurality of locations withinthe genuine mark, resulting in a second set of metrics for the genuinemark, wherein the plurality of locations is associated with a pluralityof location identifiers; forming the electronic signature for thegenuine mark based on the first set and second set of metrics;generating a hash identifier for the genuine mark by carrying out stepscomprising: extracting a first waveform from the first set of metrics,wherein the first waveform is based on an ordered pair relationshipbetween the first set of metrics and the plurality of locations;applying a moving average to the first waveform to derive a firstfiltered waveform; extracting attributes of the first filtered waveform;extracting a second waveform from the second set of metrics, wherein thesecond waveform is based on an ordered pair relationship between thesecond set of metrics and the plurality of locations; applying a movingaverage to the second waveform to derive a second filtered waveform;extracting attributes of the second filtered waveform; forming the hashidentifier for the genuine mark from the attributes of the firstfiltered waveform and the attributes of the second filtered waveform;storing the hash identifier in a database in association with theelectronic signature of the genuine mark, wherein the database includesa plurality of other electronic signatures and a plurality of other hashidentifiers, each electronic signature being associated with its ownhash identifier, and is maintained on one or more media storage devices;receiving, from a requestor, a captured image of a candidate mark with arequest to determine whether the candidate mark is genuine; generatingan electronic signature for the candidate mark by carrying out stepscomprising: using the captured image of the candidate mark, measuringthe first set of characteristics on the candidate mark at the pluralityof locations within the candidate mark, resulting in a first set ofmetrics for the candidate mark; using the captured image of thecandidate mark, measuring the second set of characteristics at theplurality of locations within the candidate mark, resulting in a secondset of metrics for the candidate mark, forming the electronic signaturefor the candidate mark based on the first set and second set of metrics;generating a hash identifier for the candidate mark by carrying outsteps comprising: extracting a first waveform from the first set ofmetrics of the candidate mark, wherein the first waveform is based on anordered pair relationship between the first set of metrics of thecandidate mark and the plurality of locations; applying a moving averageto the first waveform to derive a first filtered waveform for thecandidate mark; extracting attributes of the first filtered waveform;extracting a second waveform from the second set of metrics of thecandidate mark, wherein the second waveform is based on an ordered pairrelationship between the second set of metrics of the candidate mark andthe plurality of locations; applying a moving average to the secondwaveform of the candidate mark to derive a second filtered waveform forthe candidate mark; extracting attributes of the second filteredwaveform of the candidate mark; forming the hash identifier for thecandidate mark from the measured attributes of the candidate mark'sfirst filtered waveform and the measured attributes the candidate mark'ssecond filtered waveform; determining, based on a comparison of the hashidentifier of the candidate mark with the hash identifier of the genuinemark, whether the hash identifier of the candidate mark closely matchesthe hash identifier of the genuine mark; if the hash identifier of thecandidate mark is determined to closely match the hash identifier of thegenuine mark, then retrieving, from a media storage device, theelectronic signature of the genuine mark; and determining, based on acomparison of the electronic signature of the candidate mark with theretrieved electronic signature of the genuine mark, whether thecandidate mark is genuine; if the candidate mark is determined to begenuine, then transmitting a message to the requestor indicating thatthe mark is determined to be genuine.
 21. The method of claim 20,wherein extracting attributes from the first filtered waveform of thegenuine mark, the second filtered waveform of the genuine mark, thefirst filtered waveform of the candidate mark, and the second filteredwaveform of the candidate mark comprises measuring the locations of thezero crossings over a plurality of sections of each of the respectivefiltered waveforms.
 22. The method of claim 20, wherein extractingattributes from the first filtered waveform of the genuine mark, thesecond filtered waveform of the genuine mark, the first filteredwaveform of the candidate mark, and the second filtered waveform of thecandidate mark comprises measuring the peak-to-peak distances over aplurality of sections of each of the respective filtered waveforms. 23.The method of claim 20, wherein extracting attributes from the firstfiltered waveform of the genuine mark, the second filtered waveform ofthe genuine mark, the first filtered waveform of the candidate mark, andthe second filtered waveform of the candidate mark comprises measuringarea under the waveform for each of a plurality of sections of each ofthe respective filtered waveforms.
 24. The method of claim 20, whereinextracting attributes from the first filtered waveform of the genuinemark, the second filtered waveform of the genuine mark, the firstfiltered waveform of the candidate mark, and the second filteredwaveform of the candidate mark comprises computing the derivative at aplurality of points on each of the respective filtered waveforms. 25.The method of claim 20, wherein the genuine mark is a barcode.